package com.dabbo.starship.interfaces;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Block extends Remote {

	public final static int BLOCK_DEFAULT = 0;
	public final static int BLOCK_BRIDGE = 1;
	public final static int BLOCK_REACTOR = 2;
	public final static int BLOCK_ENGINE = 3;
	public final static int BLOCK_CARGO = 4;
	
	public int getBlockType() throws RemoteException;

	public int getPowerOutput() throws RemoteException;
	
	public Container getParent() throws RemoteException;
	
	public void activateCell(CellLocationInterface cellLocation) throws RemoteException;
	
	public void deActivateCell(CellLocationInterface cellLocation) throws RemoteException;

	public void powerFailure() throws RemoteException;
	
	public void tick() throws RemoteException;
	
	public boolean isBlockLit() throws RemoteException;

	public void setLighting(boolean lighting) throws RemoteException;

	public void setDescription(String description) throws RemoteException;
	
	public String getDescription() throws RemoteException;
	
	public Cell getCell(CellLocationInterface cellLocation) throws RemoteException;
	public Cell[][] getCells() throws RemoteException;
	
	public void setCell(Cell cell, CellLocationInterface cellLocation) throws RemoteException;
	
}

